// 资源导入相关工具函数
// REF: API-SHARE189-004@v1.0

import {
  Clock,
  RefreshCw,
  CheckCircle,
  XCircle,
  Download
} from 'lucide-react';

// 状态映射
export const statusMap = {
  0: { text: '待解析', color: 'bg-gray-100 text-gray-800', icon: Clock },
  1: { text: '解析中', color: 'bg-blue-100 text-blue-800', icon: RefreshCw },
  2: { text: '解析完成', color: 'bg-green-100 text-green-800', icon: CheckCircle },
  3: { text: '解析失败', color: 'bg-red-100 text-red-800', icon: XCircle },
  4: { text: '已导入', color: 'bg-purple-100 text-purple-800', icon: Download }
};

// 格式化文件大小
export function formatBytes(bytes: number): string {
  if (bytes === 0) return '0 Bytes';
  const k = 1024;
  const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
  const i = Math.floor(Math.log(bytes) / Math.log(k));
  return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
}

// 格式化日期
export function formatDate(dateString: string): string {
  const date = new Date(dateString);
  return date.toLocaleString('zh-CN');
}

// 统一获取本地存储中的访问令牌（兼容 access_token 与 token 两种键名）
function getAccessToken(): string | null {
  if (typeof window === 'undefined') return null;
  return (
    localStorage.getItem('access_token') ||
    localStorage.getItem('token') ||
    null
  );
}

// API 请求工具函数
export const apiRequest = {
  // 获取认证头（无token时不返回Authorization，避免传递无效Bearer）
  getAuthHeaders: () => {
    const token = getAccessToken();
    return token ? { 'Authorization': `Bearer ${token}` } : {};
  },

  // 获取JSON请求头（无token时仅返回Content-Type）
  getJsonHeaders: () => {
    const token = getAccessToken();
    return token
      ? { 'Content-Type': 'application/json', 'Authorization': `Bearer ${token}` }
      : { 'Content-Type': 'application/json' };
  }
};